<?php

class HttpAjax extends TPage {
//<editor-fold defaultstate="collapsed" desc="EliminarPregunta">
  /**
   * elimina una pregunta
   * @param <type> $idPregunta
   * @return <type>
   * @author VSR, 01/01/2011
   */
  private function eliminarPregunta($idPregunta) {
    $retorno = "";

    try {
      $retorno = PreguntaFrecuente::eliminarDatos($idPregunta);
    } catch (Exception $e) {
      $retorno = Sistema::CODIGO_SQL_ERROR;
    }
    return $retorno;
  }
//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="AutocompletarPregunta">
  /**
   * obtiene listado de preguntas para poder autocompletar
   * @author VSR, 13/06/2011
   */
  private function autocompletarPregunta() {
    $retorno = "";
    $textoBusquedaOriginal = $this->Request["term"];
    $textoBusqueda = strtolower($this->Request["term"]);
    $sb = new StringBuilder();
    $templateJSON = "{\"label\":\"{#LABEL}\",\"value\":\"{#VALUE}\"}";
    $auxTemplateJSON = "";

    try {
      $arr = PreguntaFrecuente::autocompletarPregunta(str_replace("%", "", $textoBusquedaOriginal));
      if(is_null($arr)) {
        $totalRegistros = 0;
      } else {
        $totalRegistros = count($arr);
      }

      if($totalRegistros > 0) {
        for($i = 0; $i <= $totalRegistros - 1; $i++) {
          $auxTemplateJSON = $templateJSON;
          //asigna valores del dataset
          $row = $arr[$i];
          $valor = trim($row["Pregunta"]);
          $valorConEstilo = str_replace($textoBusqueda, "<b>".strtolower($textoBusqueda)."</b>", strtolower($valor));

          //reemplaza las marcas por los valores reales
          $auxTemplateJSON = str_replace("{#LABEL}", $valorConEstilo, $auxTemplateJSON);
          $auxTemplateJSON = str_replace("{#VALUE}", Utilidades::escaparComillasJS($valor), $auxTemplateJSON);
          $sb->append($auxTemplateJSON);
          if($i < $totalRegistros - 1) { $sb->append(","); }
        }
      } else {
        $sb->append("");
      }
    } catch (Exception $e) {
      $oUsuario = Utilidades::obtenerSessionPorNombre(Usuario::NOMBRE_ENTIDAD);
      if(is_null($oUsuario)) {
        $sb->append("{\"label\":\"<span class='cssMensajeError'>Su sesi&oacute;n ha finalizado.<br/>Cierre la sesi&oacute;n actual y vuelva a ingresar para poder operar de manera correcta en el sistema.</span>\",\"value\":\"\"}");
      } else {
        $sb->append("{\"label\":\"<span class='cssMensajeError'>Ha ocurrido un error interno y no se pudo obtener el valor.<br/>Int&eacute;ntelo m&aacute;s tarde por favor.</span>\",\"value\":\"\"}");
      }
    }
    //asigna valor
    $retorno = "[".$sb->toString()."]";
    return $retorno;

  }
//</editor-fold>

  public function onLoad($param) {
    parent::onLoad($param);
    $opcion = urldecode($this->Request["op"]);
    $idPregunta = urldecode($this->Request["idPregunta"]);
    $response = $this->getResponse();

    try {
      $session = new THttpSession();
      $session->open();
      $oUsuario = Utilidades::obtenerSessionPorNombre(Usuario::NOMBRE_ENTIDAD);
      switch ($opcion) {
        case "EliminarPregunta":
          $respuesta = $this->eliminarPregunta($idPregunta);
          break;
        case "AutocompletarPregunta":
          $respuesta = $this->autocompletarPregunta();
          break;
        default:
          $respuesta = Sistema::CODIGO_SQL_ERROR;
          break;
      }
      $response->write($respuesta);

    } catch (Exception $e) {
      $response->write(Sistema::CODIGO_SQL_ERROR);
    }
  }
  
}

?>
